#ifndef DBUSSERVICE_H_
#define DBUSSERVICE_H_

namespace gpyp {
class Application;
}

G_BEGIN_DECLS

#define GPYP_TYPE_DBUS_SERVICE            (gpyp_dbus_service_get_type())
#define GPYP_DBUS_SERVICE(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj), GPYP_TYPE_DBUS_SERVICE, GpypDBusService))
#define GPYP_DBUS_SERVICE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),  GPYP_TYPE_DBUS_SERVICE, GpypDBusServiceClass))
#define GPYP_IS_DBUS_SERVICE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj), GPYP_TYPE_DBUS_SERVICE))
#define GPYP_IS_DBUS_SERVICE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),  GPYP_TYPE_DBUS_SERVICE))
#define GPYP_DBUS_SERVICE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),  GPYP_TYPE_DBUS_SERVICE, GpypDBusServiceClass))

typedef struct _GpypDBusService      GpypDBusService;
typedef struct _GpypDBusServiceClass GpypDBusServiceClass;

struct _GpypDBusService {
  GObject            gobj;
  gpyp::Application *app_;
};

struct _GpypDBusServiceClass {
  GObjectClass parent_class;
};

guint gpyp_dbus_service_get_type();
GpypDBusService *gpyp_dbus_service_new();

G_END_DECLS

namespace gpyp {
namespace dbus {

void init(Application &app);
void uninit();

}/*dbus*/
}/*gpyp*/

#endif/*DBUSSERVICE_H_*/
